Create a Virtual Machine#1
2015/01/16 |
Install GuestOS to create a Virtual Machine. This example shows to install CentOS 5.
|
|
[1] | Install on text mode via network, it's OK on Console or remote connection with Putty and so on. Furthermore, Virtual Machine's images are placed at /var/lib/libvirt/images by default as a Storage Pool, but this example shows to create and use a new Storage Pool. |
# create a new Storage Pool [root@dlp ~]# mkdir -p /var/kvm/images [root@dlp ~]# virt-install \
--name www \
--ram 3072 \ --disk path=/var/kvm/images/www.img,size=30 \ --vcpus 2 \ --os-type linux \ --os-variant rhel5.4 \ --network bridge=br0 \ --nographics \ --location 'http://ftp.jaist.ac.jp/pub/Linux/CentOS/5.11/os/x86_64/' \ --extra-args 'console=ttyS0,115200n8 serial'
Starting install...
# start installation # note: virt-install will be fail on CentOS 5 if RAM is set over 4G # note: if you set over 4G RAM, change to it after creating a VM or set it on GUI with virt-manager |
The example of options above means like below. There are many options for others, make sure eith "man virt-install".
--name
specify the name of Virtual Machine
--ram
specify the amount of memories of Virtual Machine
--disk path=xxx ,size=xxx
'path=' ⇒ specify the location of disks of Virtual Machine
--vcpus'size=' ⇒ specify the amount of disks of Virtual Machine
specify the virtual CPUs
--os-type
specify the type of GuestOS
--os-variant
specify the kind of GuestOS
--network
specify network types of Virtual Machine
--nographics
not use graphics
--location
specify the location of installation where from
--extra-args
specify parameters that is set in kernel
|
[2] | Install on text mode, it's the same with common procedure of installation. After finishing installation, reboot first and then login prompt is shown like follwos. |
CentOS release 5.11 (Final)
Kernel 2.6.18-398.el5 on an x86_64
localhost.localdomain login:
Password:[root@localhost ~]# |
[3] | Move to GuestOS to HostOS with Ctrl + ] key. Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'. |
[root@localhost ~]#
[root@dlp ~]# # Ctrl + ] key [root@dlp ~]# # Host's console virsh console www # move to Guest Connected to domain www
Escape character is ^]
[root@localhost ~]# # Enter # Guest's console |
[4] | Because after installing GuestOS from network, it is minimum settings, so it's useful to save it as a template in order to create new virtual machines later. |
[root@localhost ~]# # Ctrl + ] key
[root@dlp ~]#
[root@dlp ~]# # Host's console virt-clone --original www --name template --file /var/kvm/images/template.img
Allocating 'template.img'
| 20 GB 01:44
Clone 'template' created successfully.
[root@dlp ~]# ll /var/kvm/images/template.img # disk image -rwxr-xr-x 1 root root 32212254720 Jan 16 22:52 /var/kvm/images/template.img [root@dlp ~]# ll /etc/libvirt/qemu/template.xml # xml file -rw------- 1 root root 1130 Jan 16 22:50 /etc/libvirt/qemu/template.xml |
[5] | |
[6] | Define a new Storage Pool. |
[root@dlp ~]# mkdir /etc/libvirt/storage
[root@dlp ~]#
vi /etc/libvirt/storage/disk01.xml # create new
<pool type='dir'>
# any name <name>disk01</name> <capacity>0</capacity> <allocation>0</allocation> <available>0</available> <source> </source> <target> # specify pool directory <path>/var/kvm/images</path> <permissions> <mode>0700</mode> <owner>-1</owner> <group>-1</group> </permissions> </target> </pool> # define the pool [root@dlp ~]# virsh pool-define /etc/libvirt/storage/disk01.xml
Pool disk01 defined from /etc/libvirt/storage/disk01.xml
# start the pool [root@dlp ~]# virsh pool-start disk01
Pool disk01 started
# set auto-start [root@dlp ~]# virsh pool-autostart disk01
Pool disk01 marked as autostarted
# show the pool list [root@dlp ~]# virsh pool-list Name State Autostart -----------------------------------------
disk01
active yes # show details [root@dlp ~]# virsh pool-info disk01 Name: disk01 UUID: 0e68d1b2-6830-d10c-29c6-83ae2aa7d792 State: running Persistent: yes Autostart: yes Capacity: 143.24 GB Allocation: 4.27 GB Available: 138.98 GB |